package com.tencent.iov.cowin.befsale.clue.controller.cus.vo.response;

import com.tencent.iov.cowin.befsale.clue.controller.clue.vo.response.ClueFailResponse;
import com.tencent.iov.cowin.befsale.clue.controller.clue.vo.response.ClueOrderResponse;
import com.tencent.iov.cowin.befsale.clue.dao.http.mdquery.response.DealerResponse;
import com.tencent.iov.cowin.befsale.clue.value.enums.ExpireStatusEnum;
import com.software.boot.common.model.rest.BaseResponse;
import com.tencent.iov.cowin.befsale.clue.value.enums.FollowRecordStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * _Response层
 *
 * @author xiamu
 * @version 1.0
 * @created 2021-12-21 17:29:58
 */
@Data
public class CustomerFollowRecordResponse implements BaseResponse {

    /**
     * 主键
     **/
    @ApiModelProperty(value = "主键")
    private Long id;
    /**
     * 线索id
     **/
    @ApiModelProperty(value = "线索id")
    private Long clueId;
    /**
     * 客户表主键
     **/
    @ApiModelProperty(value = "客户表主键")
    private Long cusId;
    /**
     * 计划跟进预约id
     **/
    @ApiModelProperty(value = "计划跟进预约id")
    private Long followPlanId;
    /**
     * 下次跟进预约id
     **/
    @ApiModelProperty(value = "下次跟进预约id")
    private Long nextFollowPlanId;
    /**
     * 产品介绍 list id标签
     **/
    @ApiModelProperty(value = "产品介绍 list id标签")
    private String prodCode;
    /**
     * 跟进内容标签id（到店接待，试乘试驾，下订，交车）
     **/
    @ApiModelProperty(value = "跟进内容标签id（到店接待，试乘试驾，下订，交车）")
    private String followContent;
    /**
     * 跟进备注
     **/
    @ApiModelProperty(value = "跟进备注")
    private String followRemark;
    /**
     * 到店接待_进店时间
     **/
    @ApiModelProperty(value = "到店接待_进店时间")
    private Date checkinTime;
    /**
     * 到店接待_离店时间
     **/
    @ApiModelProperty(value = "到店接待_离店时间")
    private Date checkoutTime;
    /**
     * 试乘试驾_意向车型id
     **/
    @ApiModelProperty(value = "试乘试驾_意向车型id")
    private Long driveModelId;
    /**
     * 试乘试驾_意向品牌id
     */
    @ApiModelProperty(value = "试乘试驾_意向品牌id", example = "stringValue")
    private Long driveBrandId;
    /**
     * 试乘试驾_意向车系id
     */
    @ApiModelProperty(value = "试乘试驾_意向车系id", example = "stringValue")
    private Long driveSeriesId;
    /**
     * 试乘试驾_意向年款Id
     */
    @ApiModelProperty(value = "试乘试驾_意向年款Id", example = "stringValue")
    private Long driveYearId;
    /**
     * 试乘试驾_意向配置id
     **/
    @ApiModelProperty(value = "试乘试驾_意向配置id")
    private Long driveConfigId;
    /**
     * 订单表id
     **/
    @ApiModelProperty(value = "订单表id")
    private Long orderId;
    /**
     * 交车_姓名
     **/
    @ApiModelProperty(value = "交车_姓名")
    private String deliveryName;
    /**
     * 交车_手机号
     **/
    @ApiModelProperty(value = "交车_手机号")
    private String deliveryPhone;
    /**
     * 战败审批表id
     **/
    @ApiModelProperty(value = "战败审批表id")
    private Long failId;
    /**
     * 操作时间(试驾-试驾时间, 下订-下订时间,  交车-交车时间, 战败-战败时间)
     */
    @ApiModelProperty(value = "操作时间(试驾-试驾时间, 下订-下订时间,  交车-交车时间, 战败-战败时间)", example = "2020-03-28T13:46:56.711Z")
    private Date operateTime;
    /**
     * 备注(展示内容为:战败申请 审批记录 激活记录的内容)
     **/
    @ApiModelProperty(value = "备注(展示内容为:战败申请 审批记录 激活记录的内容)")
    private String remark;
    /**
     * 租户id
     **/
    @ApiModelProperty(value = "租户id")
    private String tenantId;
    /**
     * 经销商id
     **/
    @ApiModelProperty(value = "经销商id")
    private String dealerId;
    /**
     * 企微id
     **/
    @ApiModelProperty(value = "企微id")
    private String corpId;
     /**
     * 状态
      * @see FollowRecordStatusEnum
     */
    @ApiModelProperty(value = "状态 0 新建  5 下发(下发经销商),  10 分配（分配跟进人、变更跟进人）,  15跟进（产品介绍、到店接待、试乘试驾、下订、交车)，30 审批", example = "1")
    private Integer status;

    /**
     * 二级状态 状态 0 新建线索  5 下发(下发总部客户),  10分配跟进人，11变更跟进人,  15产品介绍, 16到店接待, 17试乘试驾，
     *            18下订, 19交车，20实销， 21战败审批，30 同意战败，31 拒绝战败， 33 战败激活
     * @see FollowRecordStatusEnum
     */
    @ApiModelProperty(value = "状态（1本次跟进，2战败申请，3审批记录，4激活记录)", example = "1")
    private Integer secondStatus;
    /**
     * 是否逾期状态（-1逾期 0未逾期)和预约时间对比
     * @see ExpireStatusEnum
     **/
    @ApiModelProperty(value = "是否逾期状态（-1逾期 0未逾期)和预约时间对比")
    private Integer expireStatus;
    /**
     * 删除标志（0：代表存在、-1：代表删除）
     **/
    @ApiModelProperty(value = "删除标志（0：代表存在、-1：代表删除）")
    private Integer deleted;
    /**
     * 创建人
     **/
    @ApiModelProperty(value = "创建人")
    private String createdBy;
    /**
     * 创建人名称
     **/
    @ApiModelProperty(value = "创建人名称")
    private String createdName;
    /**
     * 创建时间
     **/
    @ApiModelProperty(value = "创建时间")
    private Date createdTime;
    /**
     * 修改人
     **/
    @ApiModelProperty(value = "修改人")
    private String updatedBy;
    /**
     * 修改人名称
     **/
    @ApiModelProperty(value = "修改人名称")
    private String updatedName;
    /**
     * 修改时间
     **/
    @ApiModelProperty(value = "修改时间")
    private Date updatedTime;

    @ApiModelProperty(value = "战败信息")
    private ClueFailResponse clueFail;

    @ApiModelProperty(value = "订单信息")
    private ClueOrderResponse clueOrder;

    @ApiModelProperty(value = "经销商信息")
    private DealerResponse dealerResponse;


    @ApiModelProperty(value = "json字符串 所有渠道的信息", example = "stringValue")
    private String sourceInfo;

    @ApiModelProperty(value = "意向等级_意向字典", example = "stringValue")
    private String intentionGrade;

    @ApiModelProperty(value = "意向标签信息", example = "stringValue")
    private String intentionTags;

    @ApiModelProperty(value = "车型车系信息", example = "stringValue")
    private String vehInfo;

    @ApiModelProperty(value = "跟进人ID", example = "stringValue")
    private String followEmpId;

    @ApiModelProperty(value = "跟进人姓名", example = "stringValue")
    private String followEmpName;

    @ApiModelProperty(value = "上次跟进人Id", example = "stringValue")
    private String befFollowEmpId;

    @ApiModelProperty(value = "上次跟进人姓名", example = "stringValue")
    private String befFollowEmpName;

    @ApiModelProperty("内容清单")
    private String followDetail;

    @ApiModelProperty("下次跟进计划")
    private CustomerFollowPlanResponse nextPlanRes;
}